/*
* Copyright (C) 2012 Manuel Pérez
*
* This file is part of OpenSudoku.
*
* OpenSudoku is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* OpenSudoku is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with OpenSudoku. If not, see <http://www.gnu.org/licenses/>.
*
*/
package igraf;

import igraf.Kotxeak.KotxeMarkaModeloaBerria;
import igraf.abokatua.AbokatuBaja;
import igraf.abokatua.AbokatuBerria;
import igraf.abokatua.AbokatuKudeaketa;
import igraf.bezeroa.AltaBezeroa;
import igraf.bezeroa.BajaBezeroa;
import igraf.bezeroa.BezeroBerrizketa;
import igraf.bezeroa.BezeroKudeaketa;
import igraf.diagnostikoak.DiagnostikoaSartu;
import igraf.fakturak.AboFaktura;
import igraf.fakturak.KonponketaFaktura;
import igraf.fakturak.OrdezkaketaKotxeFaktura;
import igraf.fakturak.PerituFaktura;
import igraf.fakturak.TailerFaktura;
import igraf.kontsultak.AbokatuKontsulta;
import igraf.kontsultak.BalorazioKontsulta;
import igraf.kontsultak.BezeroKotxeenKontsulta;
import igraf.kontsultak.DiagnostikoKontsulta;
import igraf.kontsultak.InbolukratuKontsulta;
import igraf.kontsultak.IstripuKontsultak;
import igraf.kontsultak.MedikuKontsulta;
import igraf.kontsultak.PanelKontsulta;
import igraf.kontsultak.PerituKontsulta;
import igraf.kontsultak.TailerKontsulta;
import igraf.login.ArgazkiPanel;
import igraf.medikuak.KlinikaSortu;
import igraf.medikuak.MedikuaEsleitu;
import igraf.medikuak.MedikuaSortu;
import igraf.peritua.BalorazioaEman;
import igraf.peritua.PerituBaja;
import igraf.peritua.PerituBerria;
import igraf.peritua.PerituKudeaketa;
import igraf.prozezuak.AbokatuEsleitu;
import igraf.prozezuak.BidaiariaBete;
import igraf.prozezuak.BidaiariaSortu;
import igraf.prozezuak.IstripuaSortu;
import igraf.prozezuak.PerituaEsleitu;
import igraf.prozezuak.TailerraEsleitu;
import igraf.tailerra.TailerKudeaketa;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Robot;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.sql.SQLException;
import java.util.Date;

import javax.imageio.ImageIO;
import javax.swing.ImageIcon;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JPanel;

import dBasea.DatuBasea;
import dBasea.backup.BabesKopia;

public class Igraf extends JFrame implements ItzuliInterfazea {
	private static final long serialVersionUID = -5430048257109295642L;
	
	// hasieraketak eta deklarazioak

	private JMenuBar menuBar;
	// menu barraren menu bat da
	// subMenu azpimenuak egiteko(bat daukagu)
	private JMenu menu, subMenu;
	// menuItem barruan bakarrik textua
	@SuppressWarnings("unused")
	private JMenuItem menuItem;
	private JMenuItem altaAukera;
	private JMenuItem aldatuAukera;
	private JMenuItem perit;
	private JMenuItem abok;
	private JMenuItem abokatuKontsulta;
	private JMenuItem diagnostikoKontsulta;
	private JMenuItem tailerKontsulta;
	private JMenuItem bajaAukera;
	private JMenuItem kopiaAukera;
	private JMenuItem tailerkudeaketa;
	private JMenuItem kopiasql;
	private JMenuItem balorazio;
	private JMenuItem aboalta;
	private JMenuItem abobaja;
	private JMenuItem abokudeak;
	private JMenuItem diagnostiko;
	private JMenuItem gehi;
	private JMenuItem faq;
	private JMenuItem istripuKontsulta;
	private JMenuItem istrikud;
	private JMenuItem onartu;
	private JMenuItem tailerDat;
	private JMenuItem tl;
	private JMenuItem abo;
	private JMenuItem irtenAukera;
	private JMenuItem berrituAukera;
	private JMenuItem kotxeSortu;
	private JMenuItem kotxeEsleitu;
	private JMenuItem medikuaSortu;
	private JMenuItem klinikaSortu;
	private JMenuItem medikuaEsleitu;
	private JMenuItem kotxeSorr;
	private JMenuItem bidaiSor;
	private JMenuItem medikuKontsulta;
	private JMenuItem inbolukratuKontsulta;
	private JMenuItem balorazioKontsulta;
	private JMenuItem bidaiBete;
	private JMenuItem peritSor;
	private JMenuItem peritBaja;
	private JMenuItem peritAldaketa;
	private JMenuItem perituKonstulta;
	private JMenuItem bezFak;
	private JMenuItem kotxeKonstulta;
	private JMenuItem ordeFak;
	private JMenuItem bezeroKontsulta;
	
	//defektuz igraf kargatzean null atzerako panela eta tamaina ezarri
	private JPanel azkenPanela = null;
	private JPanel lehenPanela = new ArgazkiPanel(200, 300);
	
	
	//sartuko ditudan panelak
	private TailerKudeaketa tailerKudeaketa = new TailerKudeaketa("Tailerrak > Konponketa kudeatu", this);
	private BalorazioaEman balo= new BalorazioaEman("Perituak > Balorazioa eman", this);
	private AbokatuBerria abokatu= new AbokatuBerria("Abokatuak > Alta eman", this);
	private AbokatuBaja abokatu2=new AbokatuBaja("Abokatuak > Baja eman", this);
	private AbokatuKudeaketa kudeAbo=new AbokatuKudeaketa("Abokatua > Kudeaketa", this);
	private DiagnostikoaSartu diag=new DiagnostikoaSartu("Medikuak > Diagnostikoa sartu", this);
	private AboFaktura aboFak=new AboFaktura("Fakturak > Abokatua", this);
	private PerituFaktura periFak= new PerituFaktura("Fakturak > Peritua", this);
	private TailerFaktura tailFak=new TailerFaktura("Fakturak > Tailerrak", this);
	private Faq faqq = new Faq("Laguntza > FAQ", this);	
	private AltaBezeroa altaBez=new AltaBezeroa("Bezeroak > Alta eman", this);
	private BajaBezeroa bajaBez=new BajaBezeroa("Bezeroak > Baja eman", this);
	private BezeroKudeaketa kudeBez=new BezeroKudeaketa("Bezeroak > Kudeaketa", this);
	private igraf.Kotxeak.KotxeBerria kotxeSor=new igraf.Kotxeak.KotxeBerria("Kotxeak > kotxe berria sartu", this);
	private igraf.Kotxeak.KotxeaBezeroa kotxEsl=new igraf.Kotxeak.KotxeaBezeroa("Kotxeak > kotxea-Bezeroa", this);
	private BezeroBerrizketa bezber=new BezeroBerrizketa("Bezeroak > urte bat berriztatu", this);
	private AbokatuEsleitu aboEs= new AbokatuEsleitu("Prozezuak > Abokatua Esleitu " , this);
	private TailerraEsleitu tailE=new TailerraEsleitu("Prozezuak > Tailerra esleitu", this);
	private IstripuaSortu istrip= new IstripuaSortu("Prozezuak > Istripu partea sortu", this);
	private PerituaEsleitu perE= new PerituaEsleitu("Prozezuak > Peritua esleitu ", this);
	private KlinikaSortu kliniSort= new KlinikaSortu("Medikuak > Klinika berria sortu", this);
	private MedikuaSortu mediSor= new MedikuaSortu("Medikuak > Mediku berria sortu", this);
	private MedikuaEsleitu mediEsl= new MedikuaEsleitu("Medikuak > Medikua esleitu klinikari",this); 
	private KotxeMarkaModeloaBerria kotxeBer= new KotxeMarkaModeloaBerria("Kotxeak > Marka-modelo berria sartu", this);
	private BidaiariaSortu bid=new BidaiariaSortu("Prozezuak > Bidaiari datuak bete", this);
	private IstripuKontsultak isKon= new IstripuKontsultak("Kontsultak > Istripuen kontsultak", this);
	private PanelKontsulta panelKon=new PanelKontsulta("Bezero Kontsultak", this);
	private AbokatuKontsulta aboKon= new AbokatuKontsulta("Kontsultak > Abokatuen kontsultak", this);
	private TailerKontsulta tailKon= new TailerKontsulta("Kontsultak > Tailer kontsultak", this);
	private MedikuKontsulta mediKon= new MedikuKontsulta("Kontsultak > Medikuak eta lan egiten duten klinikak", this);
	private InbolukratuKontsulta inbKon= new InbolukratuKontsulta("Kontsultak > Pertsona-Kotxe inbolukratuak istripuetan", this);
	private BalorazioKontsulta baKon= new BalorazioKontsulta("Kontsultak > Kotxe balorazioa istripuetan", this);
	private DiagnostikoKontsulta diKon= new DiagnostikoKontsulta("Kontsultak > Medikuen diagnostikoak", this);
	private BidaiariaBete biBet= new BidaiariaBete("Prozezuak > Existitzen den bidaiaria bete", this);
	private PerituBerria perBe= new PerituBerria("Peritua > Sartu berria", this);
	private PerituBaja perBa= new PerituBaja("Peritua > Kendu peritua", this);
	private PerituKudeaketa perAl=new PerituKudeaketa("Peritua > Peritu datuen aldaketa", this);
	private PerituKontsulta perKo=new PerituKontsulta("Kontsultak > Perituen kontsultak", this);
	private KonponketaFaktura bezeFaktura=new KonponketaFaktura("Fakturak > Bezero faktura",this);
	private BezeroKotxeenKontsulta bezkonts=new BezeroKotxeenKontsulta("Kontsultak > Bezeroak daukaten kotxea",this);
	private OrdezkaketaKotxeFaktura ordeFaktura=new OrdezkaketaKotxeFaktura("Fakturak > Ordezkaketa kotxearen faktura",this);

	private JMenuItem inporSql;

	
	public Igraf() {

		this.setResizable(true);
		this.setLocationRelativeTo(null);

		azkenPanela = lehenPanela;

		JPanel goikoa = new JPanel();
		goikoa.setBackground(new Color(102, 153, 204));

		menuBar = new JMenuBar();

		/* Aukerak */

		menu = new JMenu("Fitxategi");
		menu.setMnemonic(KeyEvent.VK_A);
		irtenAukera = new JMenuItem("Irten");
		kopiaAukera = new JMenuItem("Gorde pantailan dagoena");
		kopiasql = new JMenuItem("Gorde datu basearen kopia");
		inporSql= new JMenuItem("Datu basea inportatu");
		menu.add(kopiaAukera);
		menu.add(kopiasql);
		menu.add(inporSql);
		menu.add(irtenAukera);
		menuBar.add(menu);
		/* Bezeroak*/
		
		menu = new JMenu("Bezeroak");
		menu.setMnemonic(KeyEvent.VK_A);
		altaAukera = new JMenuItem("Alta eman");
		bajaAukera = new JMenuItem("Baja eman");
		aldatuAukera = new JMenuItem("Datuak aldatu");
		berrituAukera= new JMenuItem("Berriztatu urte bat");
		menu.add(altaAukera);
		menu.add(bajaAukera);
		menu.add(aldatuAukera);
		menu.add(berrituAukera);
		menuBar.add(menu);
		/* Tailerrak */

		menu = new JMenu("Tailerrak");
		menu.setMnemonic(KeyEvent.VK_T);
		tailerkudeaketa = new JMenuItem("Tailer berrian konponketa");
		menu.add(tailerkudeaketa);
		tailerkudeaketa.setEnabled(true);		
		menuBar.add(menu);

		/* Perituak */

		menu = new JMenu("Perituak");
		menu.setMnemonic(KeyEvent.VK_P);
		balorazio = new JMenuItem("Balorazioa eman");
		balorazio.setEnabled(true);
		peritSor = new JMenuItem("Peritua berria sartu");
		peritSor.setEnabled(true);
		peritBaja = new JMenuItem("Baja eman peritua");
		peritBaja.setEnabled(true);
		peritAldaketa = new JMenuItem("Aldatu zerbait perituan");
		peritAldaketa.setEnabled(true);
		menu.add(balorazio);
		menu.add(peritSor);
		menu.add(peritBaja);
		menu.add(peritAldaketa);
		menuBar.add(menu);

		/* Abokatuak */

		menu = new JMenu("Abokatuak");
		menu.setMnemonic(KeyEvent.VK_B);
		aboalta = new JMenuItem("Alta eman");
		aboalta.setEnabled(true);
		menu.add(aboalta);
		abobaja = new JMenuItem("Baja eman");
		abobaja.setEnabled(true);
		menu.add(abobaja);
		abokudeak = new JMenuItem("Aldaketa");
		abokudeak.setEnabled(true);
		menu.add(abokudeak);
		menuBar.add(menu);

		/* Medikuak */

		menu = new JMenu("Medikuak");
		menu.setMnemonic(KeyEvent.VK_D);
		diagnostiko = new JMenuItem("Sartu diagnostikoa");
		diagnostiko.setEnabled(true);
		menu.add(diagnostiko);
		medikuaSortu = new JMenuItem("Sartu medikua");
		medikuaSortu.setEnabled(true);
		menu.add(medikuaSortu);
		klinikaSortu = new JMenuItem("Sartu klinika");
		klinikaSortu.setEnabled(true);
		menu.add(klinikaSortu);
		medikuaEsleitu = new JMenuItem("Medikua esleitu ");
		medikuaEsleitu.setEnabled(true);
		menu.add(medikuaEsleitu);
		menuBar.add(menu);

		/* Fakturak */

		menu = new JMenu("Fakturen ordainketa");
		menu.setMnemonic(KeyEvent.VK_F);
		subMenu = new JMenu("Egin fakturen ordainketa");
		perit = new JMenuItem("Peritua");
		perit.setEnabled(true);
		subMenu.add(perit);
		abok = new JMenuItem("Abokatua");
		abok.setEnabled(true);
		subMenu.add(abok);
		tl = new JMenuItem("Tailerra");
		tl.setEnabled(true);
		subMenu.add(tl);
		bezFak = new JMenuItem("Bezeroa");
		bezFak.setEnabled(true);
		ordeFak= new JMenuItem("Ordezkaketa Kotxea");
		ordeFak.setEnabled(true);
		subMenu.add(bezFak);
		subMenu.add(ordeFak);
		menu.add(subMenu);
		menuBar.add(menu);
		
		/*kotxeak */
		menu = new JMenu("Kotxeak");
		menu.setMnemonic(KeyEvent.VK_R);
		kotxeSorr= new JMenuItem("Marka-modelo berriak sartu");
		kotxeSorr.setEnabled(true);
		menu.add(kotxeSorr);
		kotxeSortu= new JMenuItem("Kotxearen datuak sartu");
		kotxeSortu.setEnabled(true);
		menu.add(kotxeSortu);
		kotxeEsleitu= new JMenuItem("Kotxea esleitu bezeroari");
		kotxeEsleitu.setEnabled(true);
		menu.add(kotxeEsleitu);
		
		menuBar.add(menu);
		
		/* Prosezuak */
		
		menu = new JMenu("Prosezuak");
		menu.setMnemonic(KeyEvent.VK_R);
		tailerDat = new JMenuItem("Istripu datuak kudeatu");
		tailerDat.setEnabled(true);
		menu.add(tailerDat);
		onartu = new JMenuItem("Tailerra esleitu");
		onartu.setEnabled(true);
		menu.add(onartu);	
		istrikud = new JMenuItem("Peritua esleitu");
		istrikud.setEnabled(true);
		menu.add(istrikud);
		abo = new JMenuItem("Abokatua esleitu");
		abo.setEnabled(true);
		bidaiSor = new JMenuItem("Bidaiari berria sartu");
		bidaiSor.setEnabled(true);
		bidaiBete=new JMenuItem("Bidaiari datuak bete");
		bidaiBete.setEnabled(true);
		menu.add(bidaiSor);
		menu.add(bidaiBete);
		menu.add(abo);

		menuBar.add(menu);

		/* Kontsultak */

		menu = new JMenu("Kontsultak");
		menu.setMnemonic(KeyEvent.VK_C);
		istripuKontsulta = new JMenuItem("Istripuen datuak");
		abokatuKontsulta = new JMenuItem("Abokatuen datuak");
		diagnostikoKontsulta = new JMenuItem("Diagnostikoen datuak");
		tailerKontsulta = new JMenuItem("Tailerren datuak");
		bezeroKontsulta = new JMenuItem("Bezero datuak");
		medikuKontsulta = new JMenuItem("Medikuak klinikan");
		inbolukratuKontsulta = new JMenuItem("Inbolukratuak istripuetan");
		balorazioKontsulta = new JMenuItem("Kotxeen istripu balorazioak");
		perituKonstulta = new JMenuItem("Perituen datuak");
		kotxeKonstulta = new JMenuItem("Bezeroen kotxeak");
		menu.add(istripuKontsulta);
		menu.add(diagnostikoKontsulta);
		menu.add(balorazioKontsulta);
		menu.add(inbolukratuKontsulta);
		menu.add(abokatuKontsulta);
		menu.add(tailerKontsulta);
		menu.add(bezeroKontsulta);
		menu.add(perituKonstulta);
		menu.add(medikuKontsulta);
		menu.add(kotxeKonstulta);
		menuBar.add(menu);

		/* Laguntza */

		menu = new JMenu("Laguntza");
		menu.setMnemonic(KeyEvent.VK_Y);
		gehi = new JMenuItem("Bertsioa");
		gehi.setEnabled(true);
		menu.add(gehi);
		faq = new JMenuItem("FAQ");
		faq.setEnabled(true);
		menu.add(faq);
		menuBar.add(menu);

		goikoa.add(menuBar);
		
		this.setLayout(new BorderLayout(0, 0));
		this.add(goikoa, BorderLayout.NORTH);
		this.add(azkenPanela, BorderLayout.CENTER);		

		this.setVisible(true);
		this.setBounds(100, 50, 800, 600);
		this.setResizable(true);
		this.setTitle("OpenSecur");
		setDefaultCloseOperation(EXIT_ON_CLOSE);

		/* Gertaerak */
		// irten
		ActionListener irten = new ActionListener() {
			public void actionPerformed(ActionEvent evt) {
				try {
					System.exit(0);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		};
		irtenAukera.addActionListener(irten);

		// kopiaGorde
		ActionListener kopi = new ActionListener() {
			public void actionPerformed(ActionEvent evt) {
				{
					try {
						BufferedImage pantaila = new Robot().
						createScreenCapture(getBounds());
						
						JFileChooser jfc = new JFileChooser();
						jfc.setDialogType(JFileChooser.SAVE_DIALOG);
						jfc.setDialogTitle("Gorde");
						jfc.setSelectedFile(new File(new Date().getTime() + ".png"));
						int gertaera = jfc.showSaveDialog(Igraf.this);
						if (gertaera == JFileChooser.APPROVE_OPTION) {							
							ImageIO.write(pantaila, "png", jfc.getSelectedFile());
							JOptionPane
							.showMessageDialog(
									null,
									"Ondo atera da argazkia! Begiratu non gorde duzun!"
											,"Argazkia atera",
									JOptionPane.INFORMATION_MESSAGE);
						}						
					}

					catch (Exception e) {
						e.printStackTrace();
					}
				}
			}
		};
		kopiaAukera.addActionListener(kopi);

		tailerkudeaketa.addActionListener(new ActionListener() {			
			@Override
			public void actionPerformed(ActionEvent arg0) {
				ezabatuAzkenPanelaEtaGehituBerria(tailerKudeaketa);				
			}
		});

		balorazio.addActionListener(new ActionListener() {			
			@Override
			public void actionPerformed(ActionEvent arg0) {
				ezabatuAzkenPanelaEtaGehituBerria(balo);				
			}
		});
		medikuKontsulta.addActionListener(new ActionListener() {			
			@Override
			public void actionPerformed(ActionEvent arg0) {
				ezabatuAzkenPanelaEtaGehituBerria(mediKon);				
			}
		});
		balorazioKontsulta.addActionListener(new ActionListener() {			
			@Override
			public void actionPerformed(ActionEvent arg0) {
				ezabatuAzkenPanelaEtaGehituBerria(baKon);				
			}
		});
		aboalta.addActionListener(new ActionListener() {			
			@Override
			public void actionPerformed(ActionEvent arg0) {
				ezabatuAzkenPanelaEtaGehituBerria(abokatu);				
			}
		});
		abobaja.addActionListener(new ActionListener() {			
			@Override
			public void actionPerformed(ActionEvent arg0) {
				ezabatuAzkenPanelaEtaGehituBerria(abokatu2);				
			}
		});
		bezeroKontsulta.addActionListener(new ActionListener() {			
			@Override
			public void actionPerformed(ActionEvent arg0) {
				ezabatuAzkenPanelaEtaGehituBerria(panelKon);				
			}
		});
		abokudeak.addActionListener(new ActionListener() {			
			@Override
			public void actionPerformed(ActionEvent arg0) {
				ezabatuAzkenPanelaEtaGehituBerria(kudeAbo);				
			}
		});
		kotxeSortu.addActionListener(new ActionListener() {			
			@Override
			public void actionPerformed(ActionEvent arg0) {
				ezabatuAzkenPanelaEtaGehituBerria(kotxeSor);				
			}
		});
		kotxeEsleitu.addActionListener(new ActionListener() {			
			@Override
			public void actionPerformed(ActionEvent arg0) {
				ezabatuAzkenPanelaEtaGehituBerria(kotxEsl);	
			}
		});
		inbolukratuKontsulta.addActionListener(new ActionListener() {			
			@Override
			public void actionPerformed(ActionEvent arg0) {
				ezabatuAzkenPanelaEtaGehituBerria(inbKon);	
			}
		});
		diagnostiko.addActionListener(new ActionListener() {			
			@Override
			public void actionPerformed(ActionEvent arg0) {
				ezabatuAzkenPanelaEtaGehituBerria(diag);				
			}
		});
		abok.addActionListener(new ActionListener() {			
			@Override
			public void actionPerformed(ActionEvent arg0) {
				ezabatuAzkenPanelaEtaGehituBerria(aboFak);	
			}
		});
		medikuaEsleitu.addActionListener(new ActionListener() {			
			@Override
			public void actionPerformed(ActionEvent arg0) {
				ezabatuAzkenPanelaEtaGehituBerria(mediEsl);	
			}
		});
		perit.addActionListener(new ActionListener() {			
			@Override
			public void actionPerformed(ActionEvent arg0) {
				ezabatuAzkenPanelaEtaGehituBerria(periFak);	
			}
		});
		
		
		tl.addActionListener(new ActionListener() {			
			@Override
			public void actionPerformed(ActionEvent arg0) {
				ezabatuAzkenPanelaEtaGehituBerria(tailFak);	
			}
		});
		bidaiSor.addActionListener(new ActionListener() {			
			@Override
			public void actionPerformed(ActionEvent arg0) {
				ezabatuAzkenPanelaEtaGehituBerria(bid);	
			}
		});
		berrituAukera.addActionListener(new ActionListener() {			
			@Override
			public void actionPerformed(ActionEvent arg0) {
				ezabatuAzkenPanelaEtaGehituBerria(bezber);	
			}
		});
		kotxeSorr.addActionListener(new ActionListener() {			
			@Override
			public void actionPerformed(ActionEvent arg0) {
				ezabatuAzkenPanelaEtaGehituBerria(kotxeBer);	
			}
		});
		perituKonstulta.addActionListener(new ActionListener() {			
			@Override
			public void actionPerformed(ActionEvent arg0) {
				ezabatuAzkenPanelaEtaGehituBerria(perKo);	
			}
		});
		faq.addActionListener(new ActionListener() {			
			@Override
			public void actionPerformed(ActionEvent arg0) {
				ezabatuAzkenPanelaEtaGehituBerria(faqq);	
			}
		});
		abokatuKontsulta.addActionListener(new ActionListener() {			
			@Override
			public void actionPerformed(ActionEvent arg0) {
				ezabatuAzkenPanelaEtaGehituBerria(aboKon);	
			}
		});

		gehi.addActionListener(new ActionListener() {			
			@Override
			public void actionPerformed(ActionEvent arg0) {
				JOptionPane
				.showMessageDialog(
						null,
						"OpenSecur version 1.0\n"
								,"Bertsioa",
						JOptionPane.INFORMATION_MESSAGE,new ImageIcon(Igraf.class.getResource("/Argazkia/27525_106770286010768_3345_q.jpg")));	
			}
		});
		
		kopiasql.addActionListener(new ActionListener() {			
			@Override
			public void actionPerformed(ActionEvent arg0) {
				JFileChooser jfc = new JFileChooser();
				jfc.setDialogType(JFileChooser.SAVE_DIALOG);
				jfc.setDialogTitle("Gorde");
				jfc.setSelectedFile(new File(new Date().getTime() + ".sql"));
				int gertaera = jfc.showSaveDialog(Igraf.this);
				if (gertaera == JFileChooser.APPROVE_OPTION) {							
					boolean ok = BabesKopia.babesKopiaSortu("127.0.0.1", "3306", "root", "123456", "opensecur", jfc.getSelectedFile().getAbsolutePath());
					JOptionPane
					.showMessageDialog(
							null,
							"Ondo burutu da babeskopia! Begiratu non gorde duzun!"
									,"Babeskopia sortu",
							JOptionPane.INFORMATION_MESSAGE);
					if (!ok) {
						JOptionPane
						.showMessageDialog(
								null,
								"Ezin izan da babeskopia egin"
										,"BabesKopia",
								JOptionPane.ERROR_MESSAGE);	
					}
				}								
			}			
		});
		inporSql.addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent e) {
				JFileChooser jfcAbrir = new JFileChooser();
				int seleccion = jfcAbrir.showOpenDialog(Igraf.this);
				if (seleccion == JFileChooser.APPROVE_OPTION) {
					String fichero = jfcAbrir.getSelectedFile()
							.getAbsolutePath();
					// Saiakerak mysql kanpoan funtzionatzen dutenak
					// command="mysql --u=root --p=123456 --h=127.0.0.1 opensecur < "+fichero+"";
					// String
					// command="mysqldump --host=127.0.0.1 --u=root -p123456 opensecur < "+fichero+"";

					if (jfcAbrir.getSelectedFile() != null) {						
							try {//kendu,sortu eta inportatu
								JOptionPane.showMessageDialog(Igraf.this,
										"Orain itxoin behar duzu inportazioa amaitu arte", "Inportazioa",
										JOptionPane.INFORMATION_MESSAGE);
								String command = "cmd /c mysql -uroot -p123456 opensecur < \"" + fichero + "\"";

								DatuBasea.getInstance().executeSQL("drop database opensecur");
								DatuBasea.getInstance().executeSQL("create database opensecur");
								
								Runtime.getRuntime().exec("cmd /c mysql -uroot -p123456");
								Process run = Runtime.getRuntime().exec(command);
								System.out.println(run.waitFor());
								DatuBasea.getInstance().executeSQL("use opensecur");	
								JOptionPane.showMessageDialog(Igraf.this,
										"Ondo burutu da inportazioa", "Inportazioa",
										JOptionPane.INFORMATION_MESSAGE);
								try {
									DatuBasea.getInstance().itzali();
								} catch (SQLException e1) {
									e1.printStackTrace();
								}
								
							} catch (IOException e1) {
								e1.printStackTrace();
							} catch (InterruptedException e2) {
								JOptionPane.showMessageDialog(Igraf.this,
										"Errorea egon da,saiatu berriro!", "ERROR",
										JOptionPane.ERROR_MESSAGE);
								e2.printStackTrace();
							}}
							 else {
						JOptionPane.showMessageDialog(Igraf.this,
								"Ezin izan da fitxategia ireki", "ERROR",
								JOptionPane.ERROR_MESSAGE);
					}
				}
			}
		});

		
		
		altaAukera.addActionListener(new ActionListener() {			
			@Override
			public void actionPerformed(ActionEvent arg0) {
				ezabatuAzkenPanelaEtaGehituBerria(altaBez);	
			}
		});
		kotxeKonstulta.addActionListener(new ActionListener() {			
			@Override
			public void actionPerformed(ActionEvent arg0) {
				ezabatuAzkenPanelaEtaGehituBerria(bezkonts);	
			}
		});
		bajaAukera.addActionListener(new ActionListener() {			
			@Override
			public void actionPerformed(ActionEvent arg0) {
				ezabatuAzkenPanelaEtaGehituBerria(bajaBez);	
			}
		});
		aldatuAukera.addActionListener(new ActionListener() {			
			@Override
			public void actionPerformed(ActionEvent arg0) {
				ezabatuAzkenPanelaEtaGehituBerria(kudeBez);	
			}
		});
		abo.addActionListener(new ActionListener() {			
			@Override
			public void actionPerformed(ActionEvent arg0) {
				ezabatuAzkenPanelaEtaGehituBerria(aboEs);	
			}
		});
		onartu.addActionListener(new ActionListener() {			
			@Override
			public void actionPerformed(ActionEvent arg0) {
				ezabatuAzkenPanelaEtaGehituBerria(tailE);	
			}
		});
		tailerDat.addActionListener(new ActionListener() {			
			@Override
			public void actionPerformed(ActionEvent arg0) {
				ezabatuAzkenPanelaEtaGehituBerria(istrip);	
			}
		});
		diagnostikoKontsulta.addActionListener(new ActionListener() {			
			@Override
			public void actionPerformed(ActionEvent arg0) {
				ezabatuAzkenPanelaEtaGehituBerria(diKon);	
			}
		});
		istrikud.addActionListener(new ActionListener() {			
			@Override
			public void actionPerformed(ActionEvent arg0) {
				ezabatuAzkenPanelaEtaGehituBerria(perE);	
			}
		});
		bidaiBete.addActionListener(new ActionListener() {			
			@Override
			public void actionPerformed(ActionEvent arg0) {
				ezabatuAzkenPanelaEtaGehituBerria(biBet);	
			}
		});
		peritSor.addActionListener(new ActionListener() {			
			@Override
			public void actionPerformed(ActionEvent arg0) {
				ezabatuAzkenPanelaEtaGehituBerria(perBe);	
			}
		});
		peritBaja.addActionListener(new ActionListener() {			
			@Override
			public void actionPerformed(ActionEvent arg0) {
				ezabatuAzkenPanelaEtaGehituBerria(perBa);	
			}
		});
		peritAldaketa.addActionListener(new ActionListener() {			
			@Override
			public void actionPerformed(ActionEvent arg0) {
				ezabatuAzkenPanelaEtaGehituBerria(perAl);	
			}
		});
		klinikaSortu.addActionListener(new ActionListener() {			
			@Override
			public void actionPerformed(ActionEvent arg0) {
				ezabatuAzkenPanelaEtaGehituBerria(kliniSort);	
			}
		});
		medikuaSortu.addActionListener(new ActionListener() {			
			@Override
			public void actionPerformed(ActionEvent arg0) {
				ezabatuAzkenPanelaEtaGehituBerria(mediSor);	
			}
		});
		istripuKontsulta.addActionListener(new ActionListener() {			
			@Override
			public void actionPerformed(ActionEvent arg0) {
				ezabatuAzkenPanelaEtaGehituBerria(isKon);	
			}
		});
		bezFak.addActionListener(new ActionListener() {			
			@Override
			public void actionPerformed(ActionEvent arg0) {
				ezabatuAzkenPanelaEtaGehituBerria(bezeFaktura);	
			}
		});
		ordeFak.addActionListener(new ActionListener() {			
			@Override
			public void actionPerformed(ActionEvent arg0) {
				ezabatuAzkenPanelaEtaGehituBerria(ordeFaktura);	
			}
		});
		tailerKontsulta.addActionListener(new ActionListener() {			
			@Override
			public void actionPerformed(ActionEvent arg0) {
				ezabatuAzkenPanelaEtaGehituBerria(tailKon);	
			}
		});
	}
	
	private void ezabatuAzkenPanelaEtaGehituBerria(JPanel panelBerria) {
		if (azkenPanela != null) {
			this.remove(azkenPanela);
		}
		azkenPanela = panelBerria;
		if (azkenPanela instanceof Panela) {
			((Panela)azkenPanela).eremuakGarbitu();
		}

		add(azkenPanela, BorderLayout.CENTER);
		setSize(getWidth() + 1, getHeight() + 1);
		setSize(getWidth() - 1, getHeight() - 1);
	}
	
	@Override
	public void itzuliLehenPanela() {
		ezabatuAzkenPanelaEtaGehituBerria(lehenPanela);
	}
			
	public static void main(String[] args) {
		Igraf panela = new Igraf();
		panela.setVisible(true);
		panela.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	}
}
